<?php
/*******************************************************************************************
										PHÂN TRANG
********************************************************************************************
* Class: Pager
* Methods:
* findStart
* findPages
* pageList
* nextPrev
* Redistribute as you see fit.
********************************************************************************************
*******************************************************************************************/
class Pager
{
/*******************************************************************************************
* Hamf int findStart (int limit)
* Trả về dòng bắt đầu của trang được chọn dựa trên trang lấy được và biết limit
********************************************************************************************/
function findStart($limit)
{
	if ((!isset($_GET['page'])) || ($_GET['page'] == "1"))
	{
		$start = 0;
		$_GET['page'] = 1;
	}
	else
	{
		$start = ($_GET['page']-1) * $limit;
	}
	return $start;
}
/******************************************************************************************
* Hàm int findPages	(int count, int limit)
* Trả về số lượng trang cần thiết dựa trên tổng số dòng có trong table và limit
******************************************************************************************/
function findPages ($count, $limit)
{
	$pages = (($count % $limit)== 0)? $count/$limit : floor($count/$limit)+1;
	return $pages;
}

/******************************************************************************************
* Hàm string pageList (int curpage, int pages)
* Trả về danh sách trang theo định dạng "Trang đầu tiên < [các trang tiếp theo] > Trang cuối cùng"

*******************************************************************************************/
function pageList ($curpage, $pages)
{
	$page_list = "";
	
	// In trang đầu tiên và các link tới trang trước
if (($curpage !=1) && ($curpage))
	{
	$page_list .="<a href=\"".$_SERVER['PHP_SELF']."?page=1\" title=\"Trang đầu\"><<</a>";
	}
if (($curpage-1)>0)
	{
	$page_list .="<a href=\"".$_SERVER['PHP_SELF']."?page=".($curpage -1)."\" title=\"Về trang trước\"><</a> ";
	}
	
	// In ra danh sách các trang và làm cho trang hiện tại được chọn đậm hơn và không còn link
for ($i=1; $i<= $pages; $i++)
	{
		if ($i == $curpage)
		{
			$page_list .="<b>".$i."</b>";
		}
		else
		{
			$page_list .= "<a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\" title=\"Trang ".$i."\">".$i."</a>" ;
		}
		$page_list .= " ";
	}
	
	// In link của trang  tiếp theo và trang cuối
	
if (($curpage +1) <= $pages)
	{
		$page_list .="<a href=\"".$_SERVER['PHP_SELF']."?page=".($curpage +1)."\" title=\"Đến trang sau\">></a>" ;
	}
if (($curpage != $pages) && ($pages !=0))
	{
		$page_list .= "<a href=\"".$_SERVER['PHP_SELF']."?page=".$pages."\" title=\"Trang cuối\">>></a>";
	}
	
	//$page_list .="</td>\n";
	
	return $page_list;
}


/******************************************************************************************
* Hàm string nextPrev (int curpage, int pages)
* Trả về danh sách dạng " Về trang trước | Đến trang sau"
*******************************************************************************************/

	function nextPrev($curpage, $pages)
	{
	$next_prev ="";
		if (($curpage-1) <= 0)
		{
			$next_prev .= "Về trang trước";
		}
		else
		{
			$next_prev .="<a href=\"".$_SERVER['PHP_SELF']."?page=".($curpage - 1)."\">Về trang trước</a>";
		}
	$next_prev .= " | ";
		if (($curpage +1) > $pages)
		{
			$next_prev .= "Đến trang sau";
		}
		else
		{
			$next_prev .="<a href=\"".$_SERVER['PHP_SELF']."?page=".($curpage + 1)."\">Đến trang sau</a>";
		}
		return $next_prev;
	}
}
?>	